// Generated from E:\sol2bpel\grammar\SOL_Declarative.g4 by ANTLR 4.2
package qu.sol2bpel.sol.grammar;
import org.antlr.v4.runtime.misc.NotNull;
import org.antlr.v4.runtime.tree.ParseTreeVisitor;

/**
 * This interface defines a complete generic visitor for a parse tree produced
 * by {@link SOL_DeclarativeParser}.
 *
 * @param <T> The return type of the visit operation. Use {@link Void} for
 * operations with no return type.
 */
public interface SOL_DeclarativeVisitor<T> extends ParseTreeVisitor<T> {
	/**
	 * Visit a parse tree produced by {@link SOL_DeclarativeParser#matrix_var_list}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitMatrix_var_list(@NotNull SOL_DeclarativeParser.Matrix_var_listContext ctx);

	/**
	 * Visit a parse tree produced by {@link SOL_DeclarativeParser#party_line_decl}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitParty_line_decl(@NotNull SOL_DeclarativeParser.Party_line_declContext ctx);

	/**
	 * Visit a parse tree produced by {@link SOL_DeclarativeParser#deny_clause}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitDeny_clause(@NotNull SOL_DeclarativeParser.Deny_clauseContext ctx);

	/**
	 * Visit a parse tree produced by {@link SOL_DeclarativeParser#var_list}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitVar_list(@NotNull SOL_DeclarativeParser.Var_listContext ctx);

	/**
	 * Visit a parse tree produced by {@link SOL_DeclarativeParser#declarative_section}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitDeclarative_section(@NotNull SOL_DeclarativeParser.Declarative_sectionContext ctx);

	/**
	 * Visit a parse tree produced by {@link SOL_DeclarativeParser#var_line_decl}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitVar_line_decl(@NotNull SOL_DeclarativeParser.Var_line_declContext ctx);

	/**
	 * Visit a parse tree produced by {@link SOL_DeclarativeParser#vector_var_list}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitVector_var_list(@NotNull SOL_DeclarativeParser.Vector_var_listContext ctx);

	/**
	 * Visit a parse tree produced by {@link SOL_DeclarativeParser#var_decl}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitVar_decl(@NotNull SOL_DeclarativeParser.Var_declContext ctx);

	/**
	 * Visit a parse tree produced by {@link SOL_DeclarativeParser#input_output_decl}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitInput_output_decl(@NotNull SOL_DeclarativeParser.Input_output_declContext ctx);

	/**
	 * Visit a parse tree produced by {@link SOL_DeclarativeParser#verification_clause}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitVerification_clause(@NotNull SOL_DeclarativeParser.Verification_clauseContext ctx);

	/**
	 * Visit a parse tree produced by {@link SOL_DeclarativeParser#input_decl}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitInput_decl(@NotNull SOL_DeclarativeParser.Input_declContext ctx);

	/**
	 * Visit a parse tree produced by {@link SOL_DeclarativeParser#arg_list}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitArg_list(@NotNull SOL_DeclarativeParser.Arg_listContext ctx);

	/**
	 * Visit a parse tree produced by {@link SOL_DeclarativeParser#output_decl}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitOutput_decl(@NotNull SOL_DeclarativeParser.Output_declContext ctx);

	/**
	 * Visit a parse tree produced by {@link SOL_DeclarativeParser#function_decl}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitFunction_decl(@NotNull SOL_DeclarativeParser.Function_declContext ctx);

	/**
	 * Visit a parse tree produced by {@link SOL_DeclarativeParser#protocol_incl}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitProtocol_incl(@NotNull SOL_DeclarativeParser.Protocol_inclContext ctx);

	/**
	 * Visit a parse tree produced by {@link SOL_DeclarativeParser#parties_decl}.
	 * @param ctx the parse tree
	 * @return the visitor result
	 */
	T visitParties_decl(@NotNull SOL_DeclarativeParser.Parties_declContext ctx);
}